// 放置全局指令
import store from '@/store'

// 处理图片异常加载不出
export const imagerror = {
  // 指令对象 会在当前的dom元素插入到节点之后执行
  inserted(dom, options) {
    // dom 表示当前指令作用的dom对象
    // dom在此就认为是图片
    // options是指令中的变量的解释 其中有一个属性叫做 value
    // 当图片有地址 但是地址没有加载成功的时候 会报错 会触发图片的一个事件 ==> 原生js事件 onerror
    dom.onerror = function () {
      // 当图片出现异常的时候 会将指令配置的默认图片设置为该图片的内容
      // dom可以注册error事件
      dom.src = options.value
    }
  }
}

// 权限控制按钮指令
// 函数定义法写插件 -> 函数本身会被当成install方法自动执行
export const checkBtn = {
  inserted(el, binding) {
    // 控制逻辑：判断当前的按钮自身的权限标识能否在后端返回的points中找到 如果找到 证明要显示
    // 如果找不到 证明要隐藏
    // 1.权限数据 -> points 2. binding.value -> 按钮自身的标识
    const points = store.state.user.userInfo.points
    if (!points.includes(binding.value)) {
      // 把当前的按钮移除
      // 移除eldom 1.remove() 2.先找到父节点 removeChild
      el.remove()
    }
  }
}
